前面我们有简单的介绍了一下数组,后来考虑了一下,还是在这里增加一个补充说明一下。本篇除了说明数组外,还增加另外两个数据类型:枚举和结构。
我们首先来看一下枚举:
枚举其实就是通过使用对人类友好的标记(变量名称),来代替声明一些数据。通常适用于一些离散固定的数据,如,月份,季节等等。枚举的默认数据类型为 init。
语法格式:
enum <identifier> [:enum_base]
{
enumeration list
};
下面我们来看一个具体的示例:
using System;
namespace enumTest3
{
class Program
{
enum WeekDays
{
Sun, Mon, Tue, Wed, Thu, Fri, Sat
};
static void Main(string[] args)
{
Console.WriteLine(WeekDays.Sat);
Console.WriteLine((int)WeekDays.Sun);
}
}
}
我们定义的一个名为 WeekDays 的枚举(枚举名的首字母必须大写),枚举列表为 {Sun, Mon, Tue, Wed, Thu, Fri, Sat},每个枚举列表的值中,都有一个对应的 init 数字,默认从 0 开始,如果你不想从 0 开始,想从 1 开始,可以使用{Sun=1, Mon, Tue, Wed, Thu, Fri, Sat}。然后通过 Console.WriteLine() 输出枚举列表的内容,本示例中,输出了两种情况,一个是直接输入枚举列表内容的名称(Sat),还有一个是通过 “(init)” 输出 sun 对应的数字(值)。
运算结果:
枚举的数据类型可以是:byte、sbyte、short、ushort、int、unit、long、ulong。
接下来我们要讲的是结构(struct)
枚举的数据类型必须要一致,也就是说一个枚举的声明中,大家都属于同一类型的数据。
而结构中,允许有不同类型的数据。
语法格式:
struct <identifier>
{
<accessibility> <type> <name>;
<accessibility> <type> <name>;
}
下面我们来看一下结构的示例:
using System;
namespace structTest
{
struct students
{
public int id;
public int age;
public string gender;
}
class Program
{
static void Main(string[] args)
{
students Tom; // 定义该结构类型的数据
students Jerry;
Tom.id = 00001;
Tom.age = 25;
Tom.gender = "male";
Jerry.id = 00002;
Jerry.age = 24;
Jerry.gender = "male";
Console.WriteLine($"Tom is {Tom.age} years old");
Console.WriteLine($"Jerry is {Jerry.age} years old.");
}
}
}
结构,类似于数据的结构,所有的数据,都依照已经定义好的结构,录入数据。并在定义结构时,定义数据的类型。
运行结果:
下面我们来看一下数组:
以上的数据类型有一个特点,一个名称,都只能有对应的一个值,但有些情况下,我们可能需要,有多个值,如,我们前面的示例中,现在要录入学生选择的课程,有同学可能有多门课程,这个时候,就需要使用到我们的数组了。
using System;
namespace structTest
{
struct students
{
public int id;
public int age;
public string gender;
public string[] course; // 定义了一个数组
}
class Program
{
static void Main(string[] args)
{
students Tom; // 定义该结构类型的数据
students Jerry;
Tom.id = 00001;
Tom.age = 25;
Tom.gender = "male";
Tom.course = new string[] { "Math" }; //初始化数组
Jerry.id = 00002;
Jerry.age = 24;
Jerry.gender = "male";
Jerry.course = new string[] { "English" };
foreach ( string i in Tom.course) # 对数组的值进行处理
{
if (i == "Math")
{
Console.WriteLine($"Tom chose {i}.");
}
}
foreach (string i in Jerry.course)
{
if (i == "English")
{
Console.WriteLine($"Jerry chose {i}.");
}
}
}
}
}
运行结果: